package com.itheima.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.itheima.dto.MidDto;
import com.itheima.dto.PageNoticeDto;
import com.itheima.entity.Notice;
import com.itheima.vo.NoticePersonVo;
import com.itheima.vo.NoticeVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @author 51585
* @description 针对表【notice】的数据库操作Mapper
* @createDate 2022-11-03 13:46:07
* @Entity com.itheima.entity.Notice
*/
@Mapper
public interface NoticeMapper extends BaseMapper<Notice> {

    /**
     * 分页展示通知信息（自己发布的）
     *
     * @param page          分页对象
     * @param pageNoticeDto 通知条件dto
     * @return 通知vo
     */
    IPage<NoticeVo> pageNotice(@Param("page") Page page, @Param("dto") PageNoticeDto pageNoticeDto, @Param("userId") String userId);


    /**
     * 分页展示通知信息（需要处理的）
     *
     * @param page
     * @param pageNoticeDto
     * @return
     */
    IPage<NoticePersonVo> pageNoticePerson(@Param("page") Page page, @Param("dto") PageNoticeDto pageNoticeDto, @Param("userId") String userId);

    /**
     * 汇总发送通知数
     *
     * @param userIdList 用户id集合
     * @return list
     */
    List<MidDto> totalSendNoticeNum(@Param("list") List<String> userIdList);
}




